
package com.jf.cloud.order.bo.mongo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;
import java.util.List;

/**
 * 订单退款记录信息
 *
 * @author zz
 * @date 2022/8/23
 */
@Document("order_refund")
public class MongoOrderRefundBO {

    /**
     * 退款记录ID
     */
    @Id
    private Long refundId;

    /**
     * 店铺ID
     */
    private Long shopId;
    /**
     * 供应商id
     */
    private Long supplierId;

    /**
     * 买家ID
     */
    private Long userId;

    /**
     * 订单创建时间
     */
    private Date createTime;

    /**
     * 订单更新时间
     */
    private Date updateTime;

    /**
     * 订单号
     */
    private Long orderId;

    /**
     * 关联的支付单号
     */
    private Long payId;

    /**
     * 订单项ID(0:为全部订单项)
     */
    private Long orderItemId;

    /**
     * 退货数量(0:为全部订单项)
     */
    private Integer refundCount;

    /**
     * 退还积分
     */
    private Long refundScore;

    /**
     * 退款金额
     */
    private Long refundAmount;

    /**
     * 平台退款金额（退款时将这部分钱退回给平台，所以商家要扣除从平台这里获取的金额）
     */
    private Long platformRefundAmount;

    /**
     * 平台退款佣金
     */
    private Long platformRefundCommission;

    /**
     * 退款单总分销金额
     */
    private Long distributionTotalAmount;

    /**
     * 退款单类型（1:整单退款,2:单个物品退款）
     */
    private Integer refundType;

    /**
     * 申请类型:1,仅退款,2退款退货
     */
    private Integer applyType;

    /**
     * 是否接收到商品(1:已收到,0:未收到)
     */
    private Integer isReceived;

    /**
     * 退款关闭原因(1.买家撤销退款 2.卖家拒绝退款 3.退款申请超时被系统关闭)
     */
    private Integer closeType;

    /**
     * 处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭)详情见ReturnMoneyStsType
     */
    private Integer returnMoneySts;

    /**
     * 申请原因 见 BuyerReasonType
     */
    private Integer buyerReason;

    /**
     * 申请说明
     */
    private String buyerDesc;

    /**
     * 联系方式（退款时留下的手机号码）
     */
    private String buyerMobile;

    /**
     * 文件凭证(逗号隔开)
     */
    private String imgUrls;

    /**
     * 超时时间（超过该时间不处理，系统将自动处理）（保留字段）
     */
    private Date overTime;

    /**
     * 拒绝原因
     */
    private String rejectMessage;

    /**
     * 卖家备注
     */
    private String sellerMsg;

    /**
     * 受理时间
     */
    private Date handelTime;

    /**
     * 发货时间
     */
    private Date deliveryTime;

    /**
     * 收货时间
     */
    private Date receiveTime;

    /**
     * 关闭时间
     */
    private Date closeTime;

    /**
     * 确定时间(确定退款时间)
     */
    private Date decisionTime;

    /**
     * 退款时间
     */
    private Date refundTime;

    /**
     * 移交供应商时间
     */
    private Date supplierTime;

    /**
     * 供应商处理状态， -1.商家自行处理 0.待供应商处理 1.供应商已同意 2.供应商已拒绝
     */
    private Integer supplierHandleStatus;
    /**
     * 采购退款金额
     */
    private Long purchaseRefundAmount;
    /**
     * 采购的平台佣金退款金额
     */
    private Long purPlatformRefundCommission;
    /**
     * 订单运费
     */
    private Long freightAmount;
    /**
     * 是否待采购 1.是 0.否 2.已处理
     */
    private Long waitPurchase;

    /**
     * 订单类型 0普通订单 1团购订单 2秒杀订单 3积分订单
     */
    private Integer orderType;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * 退款订单项
     * @return
     */
    private List<MongoOrderRefundItemBO> orderItems;

    /**
     * 订单状态
     * @return
     */
    private Integer orderStatus;

    /**
     * 退款退回的赠品订单项ids
     * @return
     */
    private String returnGiveawayIds;

    /**
     * 退款支付类型
     */
    private Integer payType;

    private String areaCode;

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getReturnGiveawayIds() {
        return returnGiveawayIds;
    }

    public void setReturnGiveawayIds(String returnGiveawayIds) {
        this.returnGiveawayIds = returnGiveawayIds;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Date getSupplierTime() {
        return supplierTime;
    }

    public void setSupplierTime(Date supplierTime) {
        this.supplierTime = supplierTime;
    }

    public Long getPurPlatformRefundCommission() {
        return purPlatformRefundCommission;
    }

    public void setPurPlatformRefundCommission(Long purPlatformRefundCommission) {
        this.purPlatformRefundCommission = purPlatformRefundCommission;
    }

    public Long getPurchaseRefundAmount() {
        return purchaseRefundAmount;
    }

    public void setPurchaseRefundAmount(Long purchaseRefundAmount) {
        this.purchaseRefundAmount = purchaseRefundAmount;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getSupplierHandleStatus() {
        return supplierHandleStatus;
    }

    public void setSupplierHandleStatus(Integer supplierHandleStatus) {
        this.supplierHandleStatus = supplierHandleStatus;
    }

    public Long getRefundId() {
        return refundId;
    }

    public void setRefundId(Long refundId) {
        this.refundId = refundId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getPayId() {
        return payId;
    }

    public void setPayId(Long payId) {
        this.payId = payId;
    }

    public Long getOrderItemId() {
        return orderItemId;
    }

    public void setOrderItemId(Long orderItemId) {
        this.orderItemId = orderItemId;
    }

    public Integer getRefundCount() {
        return refundCount;
    }

    public void setRefundCount(Integer refundCount) {
        this.refundCount = refundCount;
    }

    public Long getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(Long refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Long getPlatformRefundAmount() {
        return platformRefundAmount;
    }

    public void setPlatformRefundAmount(Long platformRefundAmount) {
        this.platformRefundAmount = platformRefundAmount;
    }

    public Long getPlatformRefundCommission() {
        return platformRefundCommission;
    }

    public void setPlatformRefundCommission(Long platformRefundCommission) {
        this.platformRefundCommission = platformRefundCommission;
    }

    public Long getDistributionTotalAmount() {
        return distributionTotalAmount;
    }

    public void setDistributionTotalAmount(Long distributionTotalAmount) {
        this.distributionTotalAmount = distributionTotalAmount;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer getApplyType() {
        return applyType;
    }

    public void setApplyType(Integer applyType) {
        this.applyType = applyType;
    }

    public Integer getIsReceived() {
        return isReceived;
    }

    public void setIsReceived(Integer isReceived) {
        this.isReceived = isReceived;
    }

    public Integer getCloseType() {
        return closeType;
    }

    public void setCloseType(Integer closeType) {
        this.closeType = closeType;
    }

    public Integer getReturnMoneySts() {
        return returnMoneySts;
    }

    public void setReturnMoneySts(Integer returnMoneySts) {
        this.returnMoneySts = returnMoneySts;
    }

    public Integer getBuyerReason() {
        return buyerReason;
    }

    public void setBuyerReason(Integer buyerReason) {
        this.buyerReason = buyerReason;
    }

    public String getBuyerDesc() {
        return buyerDesc;
    }

    public void setBuyerDesc(String buyerDesc) {
        this.buyerDesc = buyerDesc;
    }

    public String getBuyerMobile() {
        return buyerMobile;
    }

    public void setBuyerMobile(String buyerMobile) {
        this.buyerMobile = buyerMobile;
    }

    public String getImgUrls() {
        return imgUrls;
    }

    public void setImgUrls(String imgUrls) {
        this.imgUrls = imgUrls;
    }

    public Date getOverTime() {
        return overTime;
    }

    public void setOverTime(Date overTime) {
        this.overTime = overTime;
    }

    public String getRejectMessage() {
        return rejectMessage;
    }

    public void setRejectMessage(String rejectMessage) {
        this.rejectMessage = rejectMessage;
    }

    public String getSellerMsg() {
        return sellerMsg;
    }

    public void setSellerMsg(String sellerMsg) {
        this.sellerMsg = sellerMsg;
    }

    public Date getHandelTime() {
        return handelTime;
    }

    public void setHandelTime(Date handelTime) {
        this.handelTime = handelTime;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getReceiveTime() {
        return receiveTime;
    }

    public void setReceiveTime(Date receiveTime) {
        this.receiveTime = receiveTime;
    }

    public Date getCloseTime() {
        return closeTime;
    }

    public void setCloseTime(Date closeTime) {
        this.closeTime = closeTime;
    }

    public Date getDecisionTime() {
        return decisionTime;
    }

    public void setDecisionTime(Date decisionTime) {
        this.decisionTime = decisionTime;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public Long getRefundScore() {
        return refundScore;
    }

    public void setRefundScore(Long refundScore) {
        this.refundScore = refundScore;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public List<MongoOrderRefundItemBO> getOrderItems() {
        return orderItems;
    }

    public void setOrderItems(List<MongoOrderRefundItemBO> orderItems) {
        this.orderItems = orderItems;
    }

    public Long getFreightAmount() {
        return freightAmount;
    }

    public void setFreightAmount(Long freightAmount) {
        this.freightAmount = freightAmount;
    }

    public Long getWaitPurchase() {
        return waitPurchase;
    }

    public void setWaitPurchase(Long waitPurchase) {
        this.waitPurchase = waitPurchase;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    @Override
    public String toString() {
        return "MongoOrderRefundBO{" +
                "refundId=" + refundId +
                ", shopId=" + shopId +
                ", supplierId=" + supplierId +
                ", userId=" + userId +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", orderId=" + orderId +
                ", payId=" + payId +
                ", orderItemId=" + orderItemId +
                ", refundCount=" + refundCount +
                ", refundScore=" + refundScore +
                ", refundAmount=" + refundAmount +
                ", platformRefundAmount=" + platformRefundAmount +
                ", platformRefundCommission=" + platformRefundCommission +
                ", distributionTotalAmount=" + distributionTotalAmount +
                ", refundType=" + refundType +
                ", applyType=" + applyType +
                ", isReceived=" + isReceived +
                ", closeType=" + closeType +
                ", returnMoneySts=" + returnMoneySts +
                ", buyerReason=" + buyerReason +
                ", buyerDesc='" + buyerDesc + '\'' +
                ", buyerMobile='" + buyerMobile + '\'' +
                ", imgUrls='" + imgUrls + '\'' +
                ", overTime=" + overTime +
                ", rejectMessage='" + rejectMessage + '\'' +
                ", sellerMsg='" + sellerMsg + '\'' +
                ", handelTime=" + handelTime +
                ", deliveryTime=" + deliveryTime +
                ", receiveTime=" + receiveTime +
                ", closeTime=" + closeTime +
                ", decisionTime=" + decisionTime +
                ", refundTime=" + refundTime +
                ", supplierTime=" + supplierTime +
                ", supplierHandleStatus=" + supplierHandleStatus +
                ", purchaseRefundAmount=" + purchaseRefundAmount +
                ", purPlatformRefundCommission=" + purPlatformRefundCommission +
                ", freightAmount=" + freightAmount +
                ", waitPurchase=" + waitPurchase +
                ", orderType=" + orderType +
                ", shopName='" + shopName + '\'' +
                ", orderItems=" + orderItems +
                ", orderStatus=" + orderStatus +
                ", returnGiveawayIds='" + returnGiveawayIds + '\'' +
                ", payType=" + payType +
                '}';
    }
}
